package Model;

import java.util.ArrayList;

/**
 * Описание графа
 *
 * @author pol
 */
public class Graph {

    /**
     * Конструктор графа
     */
    public Graph() {
    }

    /**
     * Устанавливает список ребер
     *
     * @param e
     */
    public void setEdges(Edge[] e) {
        edges = e;
    }

    public ArrayList<Vertex> getAdjacentWith(Vertex v) {
        ArrayList<Vertex> adjacentVerteces = new ArrayList();
        for (Edge e : edges) {
            if (e.getSource() == v) {
                adjacentVerteces.add(e.getTarget());
            }
            if (e.getTarget() == v) {
                adjacentVerteces.add(e.getSource());
            }
        }
        return adjacentVerteces;
    }
    
    public Edge getEdge(Vertex v1, Vertex v2) {
        for(int i = 0; i<edges.length; i++) {
            if(edges[i].getSource() == v1 && edges[i].getTarget() == v2)
                return edges[i];
            if(edges[i].getSource() == v2 && edges[i].getTarget() == v1)
                return edges[i];
        }
        return null;
    }
    
    private Edge[] edges;
}
